iT邦幫忙

2023 iThome 鐵人賽

DAY 1
1
Software Development

由淺入深來探討Elasticsearch,從基礎語法到底層相關原理系列 第 1

【Day 1】由淺入深來探討Elasticsearch - Elasticsearch簡介與應用背景

  • 分享至 

  • xImage
  •  

前言

以下是這個系列的大綱:

  1. 簡介Elasticsearch相關背景知識以及應用場景
  2. 介紹Elasticsearch的組成架構
  3. 快速安裝並開始使用
  4. 介紹Elasticsearch針對索引或文檔等增刪改查語法
  5. 介紹mapping,簡單介紹不同種類的儲存欄位,以及動態映射等知識
  6. 查詢語法、aggression的介紹以及如何增進查詢技巧
  7. 再次深入瞭解Elasticsearch整個架設原理,單或多節點啟動與運作流程
  8. 了解相關的xpack的設定
  9. 針對多節點以及xpack部分進行環境架設
  10. Elasticsearch針對各項請求的底層原理
  11. 索引生命週期

當然在之前的比賽已經有相當多厲害的大神們已經介紹過Elasticsearch有很多深入的介紹,並且在官方文檔中也有許多詳細的介紹。但是如果你是第一次聽到Elasticseach,或是剛開始學習的人,希望經過這30天的學習能夠獨立自己架設並且根據自身需求來進行使用

Elasticsearch特點

Elasticsearch是一個基於Apache Lucene庫的分散式搜尋和分析引擎,除了是具備開源的優勢之外(部分功能需付費),在處理和搜索大量結構化和非結構化數據時的表現非常出色。

以下為Elasticsearch的一些特點:

  1. 分佈式架構: ES通過將數據分成多個shard並在分佈在多機器上,達成高可用性和擴展性,因此處理大量數據時非常快速
  2. 全文索引:ES除了一般的關鍵字查詢之外(term level qurey),也支持全文索引(full text query),在進行查詢時更有彈性
  3. 多種數據類型支持:ES能夠處理多種數據類型,包含結構化與非結構化數據,例如地理位置、IP、日誌等等
  4. 擴展性:ES能與其他服務構成ELK系統(Elasticsearch 、Logstash、Kibana)。在Logstash能夠進行數據過濾,並且多管道的收集數據,而Kibana則是提供數據分析與可視化平台,可以透過圖表或是儀表板的方式呈現數據。而beats家族也能做到各式不同的功能,例如Heartbeat可以監控服務的存活狀況,而Metricbeat則可以去監控主機的CPU與記憶體等狀況等

應用場景

  1. 搜尋引擎:因為具備全文索引,支援proximity search與Fuzzy match query等等,在網站、app與內部資料庫查找時,能夠快速的檢索相關文檔,並且在使用者操作上給予一定的彈性。例如proximity search可以接受輸入的單字順序更改,而Fuzzy match query可以接受一定範圍內的錯字查詢
// Proximity searches
搜尋: Spicy Sauce 
結果: 除了Spicy Sauce之外,Spicy Tomato Sauce也可以被找到

// Fuzzy match query
搜尋: 想找Eason但是打成Eas0n
結果: 可以找到Eason
  1. 日誌與數據分析:ES也常被用來收集以及儲存大量的日誌數據,並且可以支援數據的實時分析,可以幫助使用者去檢測服務問題、查看性能等等
    https://ithelp.ithome.com.tw/upload/images/20230903/20161866eB09dHCZeO.png
    圖源:https://learn.microsoft.com/zh-tw/dotnet/architecture/cloud-native/logging-with-elastic-stack

  2. 地理系統:ES可以處理地理空間的數據,所以也可以呈現不同地區的請求數以及用戶分佈等等
    https://ithelp.ithome.com.tw/upload/images/20230903/201618662Qf2IGDdKw.png
    圖源:https://www.elastic.co/cn/maps

  3. 推薦系統:因為ES具備相似度分數的計算功能,簡而言之就是會計算出每項結果與查詢語句之間的相似度分數,因此也可以建立成推薦系統的選擇之一

Elasticsearch具備的功能都不是獨有,或是說有相當新穎的技術。但是可能比較難找到同時具備全文索引、處理同義詞、計算相關性分數計算的功能,又能從這些資料生成分析與聚合數據,而同時具備相當快速的速度處理上述任務的這樣的一個服務~


下一篇
【Day 2】由淺入深來探討Elasticsearch - ELK系統
系列文
由淺入深來探討Elasticsearch,從基礎語法到底層相關原理30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言